namespace MockingBird.Simulator.Framework.Configuration
{
    using System.Collections.Generic;
    using System.Xml;

    public interface IHandlerConfigurationManager
    {
        List<string> ValidationWarnings { get; }
        List<string> ValidationErrors { get; }
        void InitializeConfigurationData(string endpointFullName);
        void InitializeConfigurationData(string endpointFullName, bool forceReload);
        void PersistConfiguration(string fileName, HandlerConfiguration configurationData);

        void Validate();
        string GetOperationInferenceStrategy();
        Dictionary<string, string> GetActionMap();
        Dictionary<string, string> GetRequestMap();

        bool IsOneWay(string operationName);
        OperationType Find(string operationName);
        OperationType FindFromSoapAction(string soapAction);
        ResponseType GetDefaultResponse(OperationType operation);
        ResponseType GetXPathResponse(OperationType operation, XmlDocument xDoc);
    }
}
